package are.web;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 * Servlet implementation class SrvUsuarios
 */
@WebServlet("/SrvTransformador")
public class SrvTransformador extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SrvTransformador() {
        super();
        // TODO Auto-generated constructor stub
    }

    
	protected void ProcesarPeticion(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		response.setContentType("text/html;charset=ISO-8859-1");
		PrintWriter out = response.getWriter();

		String operacion = (String) request.getParameter("operacion");
		db conexion = null;

		/* Inicio operacion Agregar Usuario */

		if (operacion.equals("add")) {
			try {
				conexion = new db();
				String codigo = (String) request.getParameter("codigo");
				String matricula = (String) request.getParameter("matricula");
				String potencia = (String) request.getParameter("potencia");
				String fase = (String) request.getParameter("fases");
				String serie = (String) request.getParameter("serie");
				String placa = (String) request.getParameter("placa");
				String tipo = (String) request.getParameter("tipo");
				String recurso = "-1";
				if (request.getParameter("imei") != null) {
					String imei = (String) request.getParameter("imei");
					ManejadorDispositivos DM = new ManejadorDispositivos(
							conexion);
					if (DM.Find(imei)) {
						recurso = DM.getDispositivo().getRecurso();
					}

				} else {
					if (request.getParameter("recurso") != null) {
						recurso = (String) request.getParameter("recurso");
					}
				}

				String latitud = (String) request.getParameter("latitud");
				String longitud = (String) request.getParameter("longitud");
				String valvula = (String) request.getParameter("valvula");

				Transformador trafo = new Transformador();
				trafo.setCodigo(codigo);
				trafo.setMatricula(matricula);
				trafo.setPotencia(potencia);
				trafo.setFase(fase);
				trafo.setSerie(serie);
				trafo.setPlaca_tecnica(placa);
				trafo.setTipo(tipo);
				trafo.setRecurso(recurso);
				trafo.setLatitud(latitud);
				trafo.setLongitud(longitud);
				trafo.setValvula(valvula);

				ManejadorTransformador MT = new ManejadorTransformador(
						conexion, trafo);
				if (!MT.exist(trafo.getCodigo())) {
					if (MT.add()) {
						out.print("OK");
					} else {
						out.print("Error al procesar la solicitud");
					}

				} else {
					out.print("Transformador ya existe: " + trafo.getCodigo());
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				out.print("Error de conexion con el servidor: "
						+ e.getMessage());
			} finally {
				if (conexion != null) {
					try {
						conexion.Close();
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						out.print(e.getMessage());
					}
				}
			}

		}

		if (operacion.equals("modify")) {

			try {
				conexion = new db();

				String codigo = (String) request.getParameter("codigo");
				String matricula = (String) request.getParameter("matricula");
				String potencia = (String) request.getParameter("potencia");
				String fase = (String) request.getParameter("fases");
				String serie = (String) request.getParameter("serie");
				String placa = (String) request.getParameter("placa");
				String tipo = (String) request.getParameter("tipo");
				String recurso = "-1";
				if (request.getParameter("imei") != null) {
					String imei = (String) request.getParameter("imei");
					ManejadorDispositivos DM = new ManejadorDispositivos(
							conexion);
					if (DM.Find(imei)) {
						recurso = DM.getDispositivo().getRecurso();
					}

				} else {
					if (request.getParameter("recurso") != null) {
						recurso = (String) request.getParameter("recurso");
					}
				}
				String latitud = (String) request.getParameter("latitud");
				String longitud = (String) request.getParameter("longitud");
				String valvula = (String) request.getParameter("valvula");
				String key = (String) request.getParameter("key");

				Transformador trafo = new Transformador();
				trafo.setCodigo(codigo);
				trafo.setMatricula(matricula);
				trafo.setPotencia(potencia);
				trafo.setFase(fase);
				trafo.setSerie(serie);
				trafo.setPlaca_tecnica(placa);
				trafo.setTipo(tipo);
				trafo.setRecurso(recurso);
				trafo.setLatitud(latitud);
				trafo.setLongitud(longitud);
				trafo.setValvula(valvula);
				ManejadorTransformador MT = new ManejadorTransformador(
						conexion, trafo);
				if (MT.exist(key)) {
					if (MT.update(key)) {
						out.print("OK");
					} else {
						out.print("Error al procesar la solicitud");
					}

				} else {
					out.print("Transformador no existe: " + key);
				}

			} catch (SQLException e) {
				// TODO Auto-generated catch block
				out.print("Error de conexion con el servidor: "
						+ e.getMessage());
			} finally {
				if (conexion != null) {
					try {
						conexion.Close();
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						out.print(e.getMessage());
					}
				}
			}

		}

		if (operacion.equals("list")) {
			try {
				conexion = new db();
				ManejadorTransformador MT = new ManejadorTransformador(conexion);
				ArrayList<Transformador> trafos = MT.list();

				out.println("<h2>Listado Transformadores</h2>");
				out.println("<table>");
				out.println("<tr>");
				out.println("<th>Codigo BDI</th>");
				out.println("<th>Matricula</th>");
				out.println("<th>Potencia</th>");
				out.println("<th>Fases</th>");
				out.println("<th>Serie</th>");
				out.println("<th>Placa</th>");
				out.println("<th>Latitud</th>");
				out.println("<th>Longitud</th>");
				out.println("<th>Fecha</th>");
				out.println("<th>Accion</th>");
				out.println("</tr>");
				int fila = 1;
				for (Transformador trafo : trafos) {
					out.println("<tr " + (fila % 2 == 0 ? "class='odd'" : "")
							+ ">");
					out.println("<td>" + trafo.getCodigo() + "</td>");
					out.println("<td>" + trafo.getMatricula() + "</td>");
					out.println("<td>" + trafo.getPotencia() + "</td>");
					out.println("<td>" + trafo.getFase() + "</td>");
					out.println("<td>" + trafo.getSerie() + "</td>");
					out.println("<td>" + trafo.getPlaca_tecnica() + "</td>");
					out.println("<td>" + trafo.getLatitud() + "</td>");
					out.println("<td>" + trafo.getLongitud() + "</td>");
					out.println("<td>" + trafo.getFecha() + "</td>");
					out.println("<td>");
					out.print("<a href=\"mod_transformador.jsp?menu=1&codigo="
							+ trafo.getCodigo()
							+ "\">Modificar</a>     <a href=\"Documentos.jsp?menu=1&tipo=1&key="
							+ trafo.getCodigo() + "\">Archivos</a>");
					out.println("</td>");
					out.println("</tr>");
					fila++;
				}
				out.println("<tr>");
				out.println("<td colspan='10'>Total Transformadores: "
						+ trafos.size() + "</td>");
				out.println("</tr>");
				out.println("</table>");

			} catch (SQLException e) {
				// TODO Auto-generated catch block
				out.print(e.getMessage());
			} finally {
				if (conexion != null) {
					try {
						conexion.Close();
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						out.print(e.getMessage());
					}
				}
			}
			/* Fin operacion listar departamentos */

		}

		if (operacion.equals("remove")) {
			try {
				conexion = new db();
				String key = (String) request.getParameter("key");
				ManejadorTransformador MT = new ManejadorTransformador(conexion);
				if (MT.exist(key)) {
					if (MT.remove(key)) {
						out.print("OK");
					} else {
						out.print("Error al procesar la solicitud");
					}

				} else {
					out.print("Transformador no existe: " + key);
				}

			} catch (SQLException e) {
				// TODO Auto-generated catch block
				out.print(e.getMessage());
			} finally {
				if (conexion != null) {
					try {
						conexion.Close();
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						out.print(e.getMessage());
					}
				}
			}
		}

		out.close();
	}
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.ProcesarPeticion(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.ProcesarPeticion(request, response);
	}

}
